home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 26
/
Cream of the Crop 26.iso
/
os2
/
pvm34b3.zip
/
pvm34b3
/
pvm3
/
src
/
tvdefs.h
< prev
next >
Wrap
Text File
|
1997-07-22
|
3KB
|
87 lines
/* $Id: tvdefs.h,v 1.3 1997/06/25 22:11:14 pvmsrc Exp $ */
/*
* PVM version 3.4: Parallel Virtual Machine System
* University of Tennessee, Knoxville TN.
* Oak Ridge National Laboratory, Oak Ridge TN.
* Emory University, Atlanta GA.
* Authors: J. J. Dongarra, G. E. Fagg, M. Fischer
* G. A. Geist, J. A. Kohl, R. J. Manchek, P. Mucci,
* P. M. Papadopoulos, S. L. Scott, and V. S. Sunderam
* (C) 1997 All Rights Reserved
*
* NOTICE
*
* Permission to use, copy, modify, and distribute this software and
* its documentation for any purpose and without fee is hereby granted
* provided that the above copyright notice appear in all copies and
* that both the copyright notice and this permission notice appear in
* supporting documentation.
*
* Neither the Institutions (Emory University, Oak Ridge National
* Laboratory, and University of Tennessee) nor the Authors make any
* representations about the suitability of this software for any
* purpose. This software is provided ``as is'' without express or
* implied warranty.
*
* PVM version 3 was funded in part by the U.S. Department of Energy,
* the National Science Foundation and the State of Tennessee.
*/
/*
* tvdefs.h
*
* Timeval manipulation stuff.
*
$Log: tvdefs.h,v $
* Revision 1.3 1997/06/25 22:11:14 pvmsrc
* Markus adds his frigging name to the author list of
* every file he ever looked at...
*
* Revision 1.2 1997/01/28 19:28:36 pvmsrc
* New Copyright Notice & Authors.
*
* Revision 1.1 1996/09/23 23:43:39 pvmsrc
* Initial revision
*
* Revision 1.2 1994/06/03 20:38:32 manchek
* version 3.3.0
*
* Revision 1.1 1993/08/30 23:26:52 manchek
* Initial revision
*
*/
#define TVCLEAR(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0)
#define TVISSET(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)
#define TVXLTY(xtv, ytv) \
((xtv)->tv_sec < (ytv)->tv_sec || \
((xtv)->tv_sec == (ytv)->tv_sec && (xtv)->tv_usec < (ytv)->tv_usec))
#define TVXADDY(ztv, xtv, ytv) \
if (((ztv)->tv_usec = (xtv)->tv_usec + (ytv)->tv_usec) < 1000000) { \
(ztv)->tv_sec = (xtv)->tv_sec + (ytv)->tv_sec; \
} else { \
(ztv)->tv_usec -= 1000000; \
(ztv)->tv_sec = (xtv)->tv_sec + (ytv)->tv_sec + 1; \
}
#define TVXSUBY(ztv, xtv, ytv) \
if ((xtv)->tv_usec >= (ytv)->tv_usec) { \
(ztv)->tv_sec = (xtv)->tv_sec - (ytv)->tv_sec; \
(ztv)->tv_usec = (xtv)->tv_usec - (ytv)->tv_usec; \
} else { \
(ztv)->tv_sec = (xtv)->tv_sec - (ytv)->tv_sec - 1; \
(ztv)->tv_usec = (xtv)->tv_usec + 1000000 - (ytv)->tv_usec; \
}
#define TVDIVN(ytv, xtv, n) { \
(ytv)->tv_usec = \
(((xtv)->tv_usec + 1000000 * ((xtv)->tv_sec % (n))) / (n)); \
(ytv)->tv_sec = ((xtv)->tv_sec / (n)); }